﻿// UploadCtrl
ctrls.controller('UploadCtrl', function ($scope, $http, $modalInstance, param) {
    /* Định nghĩa biến toàn cục */
    $scope.data = {};
    $scope.strings = {};
    $scope.style = {};
    $scope.variable = {};
    $scope.tblResult = {};
    // Gán giá trị init
    $scope.tblResult.Options = $gridHelper.optBase({ width: 586 });
    /* Định nghĩa phương thức xử lý */
    // Xử lý lấy chuỗi resource
    $scope.getStrings = function () {
        $pc(function () {
            $scope.strings = {
                Title: $nm('CTS.COM.UCS.UPLOAD.Title'),
                File: $nm('CTS.COM.UCS.UPLOAD.File'),
                FileAlias: $nm('CTS.COM.UCS.UPLOAD.FileAlias'),
                SortKey: $nm('CTS.COM.UCS.UPLOAD.SortKey'),
                Upload: $nm('CTS.COM.UCS.UPLOAD.Upload'),
                UpdateAll: $nm('CTS.COM.UCS.UPLOAD.UpdateAll'),
                DeleteAll: $nm('CTS.COM.UCS.UPLOAD.DeleteAll'),
                Close: $nm('CTS.COM.UCS.UPLOAD.Close'),
                ColFile: $nm('CTS.COM.UCS.UPLOAD.ColFile'),
                ColFileAlias: $nm('CTS.COM.UCS.UPLOAD.ColFileAlias'),
                ColSortKey: $nm('CTS.COM.UCS.UPLOAD.ColSortKey')
            };
        });
    };
    // Xử lý init
    $scope.init = function () {
        $pc({
            http: $http,
            url: '/cts/com/ucs/ajx/upload.aspx/InitLayout',
            data: {
                LocaleCd: param.LocaleCd,
                FileCd: param.FileCd,
                FileGroup: param.FileGroup
            },
            success: function (data) {
                $scope.data = data;
                $scope.filter();
                $ti('txtFileAlias');
                // Temp
                $scope.data.FileExt = 'jpg';
            }
        });
    };
    // Xử lý filter
    $scope.filter = function () {
        $pc({
            http: $http,
            url: '/cts/com/ucs/ajx/upload.aspx/Filter',
            data: {
                LocaleCd: param.LocaleCd,
                FileCd: param.FileCd
            },
            success: function (data) {
                $scope.tblResult.ListData = data.ListFile;
            }
        });
    };
    // Xử lý upload file
    $scope.uploadFile = function () {
        $pc({
            http: $http,
            url: '/cts/com/ucs/ajx/upload.aspx/UploadFile',
            data: {
                Code: param.Code,
                LocaleCd: param.LocaleCd,
                FileCd: param.FileCd,
                FileGroup: param.FileGroup,
                FileExt: $scope.data.FileExt,
                FileStream: $scope.data.FileStream,
                SortKey: $scope.data.SortKey,
                FileAlias: $scope.data.FileAlias
            },
            success: function () {
                $scope.filter();
            },
            error: function (err) {
                $scope.alert = err;
            }
        });
    };
    // Xử lý lưu thông tin cập nhật
    $scope.updateAll = function () {
        $pc({
            http: $http,
            url: '/cts/com/ucs/ajx/upload.aspx/UpdateAll',
            data: function () {
                var data = { ListFile: [] };
                // Gán dữ liệu cập nhật
                for (var idx in $scope.tblResult.ListData) {
                    var obj = $scope.tblResult.ListData[idx];
                    if (obj.HasChanged) {
                        data.ListFile.push({
                            LocaleCd: param.LocaleCd,
                            FileCd: param.FileCd,
                            FileNo: obj.FileNo,
                            SortKey: obj.SortKey,
                            FileAlias: obj.FileAlias
                        });
                    }
                }
                // Kết quả trả về
                return data;
            },
            success: function (data) {
                var info = { Show: true, Messages: data.Messages };
                $scope.alert = info;
                $scope.filter();
            },
            error: function (err) {
                $scope.alert = err;
            }
        });
    };
    // Xử lý xóa tất cả thông tin cập nhật
    $scope.deleteAll = function () {
        $pc({
            http: $http,
            url: '/cts/com/ucs/ajx/upload.aspx/DeleteAll',
            data: function () {
                var data = { ListFile: [] };
                // Gán dữ liệu cập nhật
                for (var idx in $scope.tblResult.ListData) {
                    var obj = $scope.tblResult.ListData[idx];
                    if (obj.HasChanged) {
                        data.ListFile.push({
                            LocaleCd: param.LocaleCd,
                            FileCd: param.FileCd,
                            FileNo: obj.FileNo
                        });
                    }
                }
                // Kết quả trả về
                return data;
            },
            success: function (data) {
                var info = { Show: true, Messages: data.Messages };
                $scope.alert = info;
                $scope.filter();
            },
            error: function (err) {
                $scope.alert = err;
            }
        });
    };
    // Xử lý thay đổi data
    $scope.tblResultChange = function (data, obj) {
        $pc(function () {
            obj.HasChanged = true;
        });
    };
    // Xử lý close
    $scope.close = function () {
        $modalInstance.close();
    };
    /* Định nghĩa các events */
    // Tiến hành lấy chuỗi resource
    $scope.getStrings();
    // Tiến hành xử lý init
    $scope.init();
});